Spring Framework ডাটাবেস ইনিশিয়ালাইজেশনের জন্য schema.sql
এবং data.sql
ফাইল সরবরাহ করার সুবিধা প্রদান করে। এই ফাইলগুলো স্বয়ংক্রিয়ভাবে অ্যাপ্লিকেশন চালানোর সময় Spring JDBC-এর মাধ্যমে ডাটাবেস ইনিশিয়ালাইজ করতে ব্যবহার করা হয়।
schema.sql
:data.sql
:schema.sql
এবং data.sql
ফাইল তৈরি করাschema.sql
: ডাটাবেস স্কিমা তৈরি করার জন্য SQL কমান্ড লিখুন।-- schema.sql
CREATE TABLE employees (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
department VARCHAR(50),
salary DECIMAL(10, 2)
);
CREATE TABLE department_stats (
department VARCHAR(50) PRIMARY KEY,
employee_count INT
);
data.sql
: ডাটাবেসে প্রাথমিক ডাটা ইনসার্ট করার জন্য SQL কমান্ড লিখুন।-- data.sql
INSERT INTO employees (name, department, salary) VALUES ('John Doe', 'HR', 50000);
INSERT INTO employees (name, department, salary) VALUES ('Jane Smith', 'IT', 60000);
INSERT INTO department_stats (department, employee_count) VALUES ('HR', 1);
INSERT INTO department_stats (department, employee_count) VALUES ('IT', 1);
resources
ফোল্ডারে সংরক্ষণ করুনSpring Framework resources
ফোল্ডারের মধ্যে থাকা schema.sql
এবং data.sql
ফাইলগুলো স্বয়ংক্রিয়ভাবে খুঁজে পায় এবং সেগুলো কার্যকর করে।
src/main/resources/
├── schema.sql
├── data.sql
Spring Boot-এ, ডাটাবেস ইনিশিয়ালাইজেশন স্বয়ংক্রিয়ভাবে সক্রিয় থাকে। তবে কনফিগারেশন যাচাই করতে নিম্নোক্ত সেটিংস চেক করুন:
spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.username=sa
spring.datasource.password=
spring.datasource.driver-class-name=org.h2.Driver
# Enable SQL initialization
spring.sql.init.mode=always
always
: প্রতিবার অ্যাপ্লিকেশন চালানোর সময় ডাটাবেস ইনিশিয়ালাইজ করে।embedded
: শুধুমাত্র এম্বেডেড ডাটাবেসের (যেমন H2, HSQLDB) ক্ষেত্রে ইনিশিয়ালাইজ করে।never
: SQL ইনিশিয়ালাইজেশন বন্ধ রাখে।schema.sql
প্রথমে কার্যকর হয়, এরপর data.sql
।spring.jpa.hibernate.ddl-auto
সেটিং ব্যবহার করেন (যেমন create
বা update
), তখন schema.sql
প্রয়োজন হয় না কারণ Hibernate নিজেই টেবিল তৈরি করতে পারে।pom.xml-এ H2 ডাটাবেস ডিপেনডেন্সি যোগ করুন:
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
application.properties ফাইল:
spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
spring.sql.init.mode=always
schema.sql
: টেবিল তৈরি করবে।data.sql
: টেবিলে ডাটা ইনসার্ট করবে।http://localhost:8080/h2-console
) থেকে ডাটাবেস পরীক্ষা করা যাবে।Spring Framework ডিফল্টভাবে schema.sql
এবং data.sql
ফাইলগুলো খুঁজে। আপনি কাস্টম ফাইল নাম ব্যবহার করতে চাইলে, নিচের প্রোপার্টি ব্যবহার করতে পারেন:
spring.sql.init.schema-locations=classpath:/custom-schema.sql
spring.sql.init.data-locations=classpath:/custom-data.sql
Spring JDBC-তে schema.sql
এবং data.sql
ফাইল ব্যবহার করে ডাটাবেস ইনিশিয়ালাইজেশন একটি সহজ এবং কার্যকর পদ্ধতি। এটি ডেভেলপমেন্ট এবং টেস্টিং-এর সময় প্রচুর সময় বাঁচায় এবং অ্যাপ্লিকেশনের ডাটাবেস স্ট্রাকচার ও ডেটার ধারাবাহিকতা নিশ্চিত করে।
Read more